7.4 分组之分段分组
如果要分组的数据是数字,且希望按照指定数字范围进行分组,则需要使用到pd.cut()
函数配合,
import pandas as pd
df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.7.04 分组之分段分组.xlsx" )
print (df)
lvl=pd.cut(x=df.分数,
bins=[ 0,60,80,101 ],
labels=[ "差","中","优" ],
right = False #False 表示左闭右开,默认为False
)
for t,d in df.groupby( by = lvl , observed = True ): #observed原来默认为False,未来版设置为True,如果改为True可以减少警告提示
print (t)
print (d)
print ("---------------------------------")
返回:
姓名 | 分数 | |
---|---|---|
0 | 张三 | 96 |
1 | 李四 | 57 |
2 | 王麻子 | 82 |
3 | 许流子 | 60 |
4 | 郭流子 | 79 |
差
姓名 | 分数 | |
1 | 李四 | 57 |
---------------------------------
中
姓名 | 分数 | |
3 | 许流子 | 60 |
4 | 郭流子 | 79 |
---------------------------------
优
姓名 | 分数 | |
0 | 张三 | 96 |
2 | 王麻子 | 82 |
---------------------------------